import {createSlice} from "@reduxjs/toolkit";
//createSlice方法的作用在于创建数据切片（数据模块）
const counterSlice = createSlice({
	//修改数据的时候，需要的命名空间 注意：不是数据访问的命名空间
	name:"myCounter",
	//当前模块（数据切片）的内部状态
	initialState:{
		count:0
	},
	//修改数据的方法,类似vuex中的mutation
	reducers:{
		/**
		 * 形参state表示当前模块的数据
		 * 形参action表示界面在执行修改的时候发送过来的通知，里面包含了传递过来参数
		 * 按照官方规定action是一个json对象，里面必须有一个属性名叫type，表示当前操作的类型
		 * 其他需要计算的数据，会放到一个叫payload的属性里面
		 */
		changeCount(state,action){
			console.log("action",action)
			state.count += action.payload;
		}
	}
})
export const {changeCount} = counterSlice.actions;
export const asyncAdd = (n)=>(next)=>{
	setTimeout(()=>{
		changeCount(n)
	},2000)
}
export default counterSlice.reducer;